#pragma once

#include <asm/fpstate.h>
#include <asm-generic/preempt_types.h>

#include <arm/asm-thread.h>

struct cpu_context_save
{
    unsigned long r4;
    unsigned long r5;
    unsigned long r6;
    unsigned long r7;
    unsigned long r8;
    unsigned long r9;
    unsigned long sl;
    unsigned long fp;
    void *sp;
    unsigned long pc;
    unsigned long extra[2]; /* Xscale 'acc' register, etc */
};

struct task_struct;

struct thread_info
{
    unsigned long flags;
    struct cpu_context_save cpu_context; /* cpu context */
    union fp_state fpstate __attribute__((aligned(8)));

    preempt_count_t preempt;
    struct task_struct *next;
};

#include <asm-generic/tif.h>
